Позволяет компилятору-клиенту выполнять компоновку с типами, переменными, константами и глобальными функциями.
HRESULT GetTypeComp ( ITypeComp FAR* FAR*ppTComp );
Параметр
ррТСотр
Указывает на указатель на экземпляр
ITypeComp для данной ITypeLib. Компилятор-клиент может
использовать методы ITypeComp для компоновки с типами из ITypeLib,
а также с определенными в этой библиотеке глобальными функциями, переменными и
константами.
Коды возврата
Из возвращенного HRESULT получают один из следующих
кодов возврата:
S_OK | Успех. |
E_OUTOFMEMORY | He хватает памяти. |
E_INVALIDARG | Один или несколько аргументов неверны. |
TYPE_E_IOERROR | Функция не может выполнить запись в файл. |
TYPE_E_INVDATAREAD | Функция не может читать из файла. |
TYPE_E_UNSUPFORMAT | Библиотека типа имеет старый формат. |
TYPE_E_INVALIDSTATE | Не удается открыть библиотеку типа. |
TYPE E WRONGTYPEKIND | Несовпадение типов. |
Комментарии
Функция Bind возвращенного TypeComp выполняет
компоновку с глобальными функциями, переменными, константами, значениями
перечислимых типов и членами коклассов. Кроме того, функция Bind
осуществляет компоновку с именами типов TKIND_MODULE, TKIND_ENUM и
TKIND_COCLASS. Эти имена скрывают любые глобальные имена, определяемые
информацией о типе. Компоновку с членами типов TKIND_ENUM, TKIND_MODULE и
TKIND_COCLASS, помеченных как объекты Application, ITуреСоmр может
выполнять непосредственно, без указания имени модуля.
ITypeComp::Bind
и ITypeComp::BindType обрабатывают только неквалифицированные имена.
ITypeLib::GetTypeComp возвращает указатель на интерфейс ITypeComp,
который используется затем для компоновки с глобальными элементами библиотеки.
Имена некоторых типов (TKIND_ENUM, TKIND_MODULE и
TKIND_COCLASS) используют общее пространство имен с переменными,
функциями, константами и элементами перечислений.
Если для недвусмысленного
указания элемента его имя требует квалификации, то, чтобы выполнить компоновку с
данным элементом для каждого квалификатора, следует последовательно вызывать
GetTypeComp. Это обеспечивает доступ компиляторов к членам модулей,
перечислений и компонентных классов, несмотря на то, что при компоновке нельзя
задавать квалифицированное имя.